//
//  TSCMySidebar.h
//  Tsc_IOS
//
//  Created by Rio on 15-9-24.
//  Copyright (c) 2015年 idream. All rights reserved.
//
// TODO dialog大小
// TODO 自定义view

//typedef void(^BPresentCompletion)();
//typedef void(^BDismissCompletion)();
typedef void(^BSidebarCompletion)();

typedef enum {
    TSCSidebarPresentStyleFlyFromTop,
    TSCSidebarPresentStyleFlyFromLeft,
    TSCSidebarPresentStyleFlyFromBottom, // 从下方飞入（默认）
    TSCSidebarPresentStyleFlyFromRight,
    // TODO 如果有其他效果（比如淡入、跳入等），再这里添加
     TSCSidebarPresentStyleFadeIn
} TSCSidebarPresentStyle;


typedef enum {
    TSCSidebarDialogWHTypeFillParent, // dialog宽度/高度填充父view
    TSCSidebarDialogWHTypePrefer, // dialog宽度/高度使用推荐值
    TSCSidebarDialogWHTypeFix, // dialog宽度/高度由外部使用者指定为固定值
    TSCSidebarDialogWHTypeDynamic // dialog宽度/高度根据子view宽度/高度动态计算
} TSCSidebarDialogWHType;

typedef enum {
    TSCSideBarDialogCustomViewSizePositionFillParent, // dialog中自定义view填充整个dialog
    TSCSideBarDialogCustomViewSizePositionUseFrame // dialog中自定义为view使用自身的frame
} TSCSideBarDialogCustomViewSizePosition;

#import <UIKit/UIKit.h>

@interface TSCMySidebar : NSObject

@property (nonatomic, strong) UIViewController * vcMain; // 创建TSCMySidebarViewController时，所在的vc
@property (nonatomic, assign) TSCSidebarPresentStyle presentStyle; // dialog显示的风格。默认：飞入-从下方
@property (nonatomic, assign) BOOL isPresenting; // 是否已经弹出显示
@property (nonatomic, assign) BOOL hasBGColor; // 背景是否有默认颜色。默认：无
@property (nonatomic, assign) BOOL hasRoundCorner; // dialog是否是圆角。默认：无。注：圆角和阴影不能同时使用，如果同时使用，将只有圆角而没有阴影
@property (nonatomic, assign) BOOL hasShadow; // dialog是否有阴影。默认：无。注：添加阴影将导致屏幕旋转变慢！
@property (nonatomic, assign) BOOL hasBorder; // dialog是否具有边框

@property (nonatomic, assign) BOOL bgClickedDismissAnimated; // 当点击背景而自动关闭dialog时，是否执行动画。默认：有
@property (nonatomic, strong) BSidebarCompletion bgClickedDismissCompletion; // 当点击背景而自动关闭dialog后，需要执行的回调

@property (nonatomic, assign) int dialogWType; // dialog的宽度类型。默认：prefer
@property (nonatomic, assign) int dialogHType; // dialog的高度类型。默认：prefer
@property (nonatomic, assign) CGFloat dialogW; // dialog的宽度值
@property (nonatomic, assign) CGFloat dialogH; // dialog的高度值
@property (nonatomic, strong) UIView * customView; // dialog中自定义子view
@property (nonatomic, assign) int dialogCustomViewSizePosition; // dialog中自定义view的尺寸及大小。默认：fillParent

- (void) presentAnimated:(BOOL)animated completion:(BSidebarCompletion)completion;
- (void) dismissAnimated:(BOOL)animated completion:(BSidebarCompletion)completion;


@end
